package com.example.composestudy.ui.navigation

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier
import com.example.composestudy.ui.main.MainTabsPage

/*
在Android的Jetpack Compose中，sealed关键字通常用于表示一组限定的类型。
* */
sealed class Screens(val route: String) {
    object ListPage : Screens("ListPage/{pageKey}")

    // 在 Kotlin 中，companion object 是一个在类内部定义的特殊对象，它的成员可以直接通过类名来访问，而无需创建类的实例
    companion object {
        fun getHomeRoute(pageKey: String): String {
            return ListPage.route.replace("{pageKey}", pageKey)
        }
    }

    object HomePage : Screens("Home")

    object DiscoveryPage : Screens("Discovery")

    object SettingsPage : Screens("Settings")

    object BasicKnowledgePageA : Screens("BasicKnowledgePageA")

    object BasicKnowledgePageB : Screens("BasicKnowledgePageB")

    object WellnessTasksPage : Screens("WellnessTasksPage")

    object AnimateXPage : Screens("AnimateXPage")
    object AnimatedVisibilityPage : Screens("AnimatedVisibilityPage")
    object AnimateTextPage : Screens("AnimateTextPage")

    object AnimatedContentPage : Screens("AnimatedContentPage")

    object CanvasPage : Screens("Canvas")
}